package cn.jbolt.core.Interceptor.reqlimit;

import cn.hutool.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
public @interface JBoltRateLimiter{
    String prefix() default "jblimit:";
    /**
     * 限流时间,单位秒
     */
    int time() default 60;
    /**
     * 限流次数
     */
    @AliasFor(attribute = "count")
    int value() default 100;
    /**
     * 限流类型
     */
    JBoltRateLimitType limitType() default JBoltRateLimitType.DEFAULT;
    /**
     * 限流后提示信息
     * @return
     */
    String msg() default JBoltRateResult.DEFAULT_MSG;

    /**
     * 限流次数
     * @return
     */
    @AliasFor(attribute = "value")
    int count() default 100;
}
